package org.example.flinketl.vo;

import java.math.BigDecimal;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;

import org.hibernate.validator.constraints.Length;

import lombok.Data;
import lombok.ToString;

/**
 * 合同明细
 */
@Data
@ToString
public class ContractMx   implements Vo{
  /**证件号码 */
  @NotNull
  @Length(min = 1)
  String uid;
  /**贷款合同号 */
  @NotNull
  @Length(min = 1)
  String contract_no;
  /**相关申请流水号 */
  String apply_no;
  /**人工编号 */
  String artificial_no;
  /**发生日期 */
  @NotNull
  String occur_date;
  /**信贷客户号 */
  @NotNull
  @Length(min = 1)
  String loan_cust_no;
  /**客户名称 */
  @NotNull
  @Length(min = 1)
  String cust_name;
  /**业务品种 */
  String buss_type;
  /**发生类型 */
  String occur_type;
  /**额度是否循环 */
  String is_credit_cyc;
  /**币种 */
  @NotNull
  @Length(min = 1)
  String curr_type;
  /**金额 */
  @NotNull
  BigDecimal buss_amt;
  /**贷款成数 */
  BigDecimal loan_pert;
  /** int4 NULL,期限年 */
  Integer term_year;
  /** int4 NULL,期限月 */
  Integer term_mth;
  /** int4 NULL,期限日 */
  Integer term_day;
  /**基准利率类型 */
  String base_rate_type;
  /**基准利率 */
  BigDecimal base_rate;
  /**浮动类型 */
  String float_type;
  /**利率浮动 */
  BigDecimal rate_float;
  /**利率 */
  BigDecimal rate;
  /** int4 NULL,还款期次 */
  Integer pay_times;
  /**还款方式 */
  String pay_type;
  /**投向 */
  String direction;
  /**用途 */
  String loan_use;
  /**还款来源 */
  String pay_source;
  /**发放日期 */
  String putout_date;
  /**到期日期 */
  String matu_date;
  /**主要担保方式 */
  String vouch_type;
  /**申请方式 */
  String apply_type;
  /** int4 NULL,展期次数 */
  Integer extend_times;
  /**已实际出帐金额 */
  BigDecimal actu_out_amt;
  /**余额 */
  BigDecimal bal;
  /**正常余额 */
  BigDecimal norm_bal;
  /**逾期余额 */
  BigDecimal dlay_bal;
  /**呆滞余额 */
  BigDecimal dull_bal;
  /**表内欠息金额 */
  BigDecimal owed_int_in;
  /**表外欠息余额 */
  BigDecimal owed_int_out;
  /**本金罚息 */
  BigDecimal fine_pr_int;
  /**利息罚息 */
  BigDecimal fine_intr_int;
  /** int4 NULL,逾期天数 */
  Integer dlay_days;
  /**五级分类 */
  String five_class;
  /**最新风险分类时间 */
  String class_date;
  /**管户机构号 */
  String mge_org;
  /**管户人工号 */
  String mgr_no;
  /**经办机构 */
  String operate_org;
  /**经办人 */
  String operator;
  /**经办日期 */
  String operate_date;
  /**登记机构 */
  String reg_org;
  /**登记人 */
  String register;
  /**登记日期 */
  String reg_date;
  /**结息方式 */
  String inte_settle_type;
  /**不良记录标志 */
  String is_bad;
  /**冻结金额 */
  BigDecimal frz_amt;
  /**合同控制方式 */
  String con_crl_type;
  /**移交类型 */
  String shift_type;
  /** int4 NULL,欠息天数 */
  String due_intr_days;
  /**原因类型 */
  String reson_type;
  /**移交余额 */
  BigDecimal shift_bal;
  /**是否担保公司担保 */
  String is_vc_vouch;
  /**贷款用途补充 */
  String loan_use_add;
  /**终结类型 */
  String finsh_type;
  /**终结日期 */
  String finsh_date;
  /**转建行标志 */
  String sts_flag;
  /**源系统日期 */
  String src_dt;
  /**平台日期 */
  String etl_dt;

  public static String getTableName(){
    return "dm_v_tr_contract_mx";
  }

  @Override
  public String getContentType(){
    return "contract";
  }
}